<?php

/**
 * CuentasCorrientes filter form.
 *
 * @package    tercermilenio
 * @subpackage filter
 * @author     Your name here
 */
class CuentasCorrientesFormFilter extends BaseCuentasCorrientesFormFilter {

    public function configure() {
        //$this->widgetSchema['cli_id']->setOption('with_empty', false);

        $this->widgetSchema['cta_cte_cli_id'] = new sfWidgetFormChoice(array('choices' => array(), 'label' => 'Nombre'));
        $this->widgetSchema['cta_cte_cli_id']->setOption('renderer_class', 'sfWidgetFormJQueryAutocompleter');
        $this->widgetSchema['cta_cte_cli_id']->setOption('renderer_options', array(
            'url' => sfContext::getInstance()->getController()->genUrl('cuentas_corrientes/autocompletarClientePorNombre'),
            'config' => '{
          max: 10,
          scroll: true,
          delay:1,
      }'
        ));
        
        $this->widgetSchema['cta_cte_cli_telefono'] = new sfWidgetFormChoice(array('choices' => array(), 'label' => 'Nº Documento'));
        $this->widgetSchema['cta_cte_cli_telefono']->setOption('renderer_class', 'sfWidgetFormJQueryAutocompleter');
        $this->widgetSchema['cta_cte_cli_telefono']->setOption('renderer_options', array(
            'url' => sfContext::getInstance()->getController()->genUrl('cuentas_corrientes/autocompletarClientePorDocumento'),
            'config' => '{
          max: 10,
          scroll: true,
          delay:1,
      }'
        ));
    }

    public function setup() {
        parent::setup();

        $this->setWidgets(array(
            'cta_cte_cli_id' => new sfWidgetFormFilterInput(),
            'cta_cte_cli_telefono' => new sfWidgetFormFilterInput(),
            //'cli_id' => new sfWidgetFormFilterInput(),
            //'cta_cte_fecha_limite' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => true)),
            //'cta_cte_monto_max' => new sfWidgetFormFilterInput(),
            //'cta_cte_saldo' => new sfWidgetFormFilterInput(),
        ));

        $this->setValidators(array(
            //'cta_cte_fecha_limite' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
            //'cli_id' => new sfValidatorPropelChoice(array('model' => 'Clientes','column'=>'cli_id','required'=>false)),
            'cta_cte_cli_id' => new sfValidatorPropelChoice(array('model' => 'Clientes','column'=>'cli_id','required'=>false)),
            'cta_cte_cli_telefono' => new sfValidatorPropelChoice(array('model' => 'Clientes','column'=>'cli_id','required'=>false)),
            //'cta_cte_monto_max' => new sfValidatorSchemaFilter('text', new sfValidatorNumber(array('required' => false))),
            //'cta_cte_saldo' => new sfValidatorSchemaFilter('text', new sfValidatorNumber(array('required' => false))),
        ));

        $this->widgetSchema->setNameFormat('cuentas_corrientes_filters[%s]');

        $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
    }

    public function addCliIdColumnCriteria(Criteria $criteria, $field, $values) {

        if (isset($values['text']) && !empty($values['text'])) {
            $criteria->addJoin(CuentasCorrientesPeer::CTA_CTE_CLIENTE, ClientesPeer::CLI_ID);
            $criteria->add(ClientesPeer::CLI_ID, $values['text'], Criteria::EQUAL);
        }
    }
    public function addCtaCteCliTelefonoColumnCriteria(Criteria $criteria, $field, $values) {

        if (!empty($values) && is_numeric($values)) {
            //var_dump($values);
           $values = intval($values);
            $criteria->add(CuentasCorrientesPeer::CTA_CTE_CLIENTE, $values, Criteria::EQUAL);
        }
    }
    public function addCtaCteCliIdColumnCriteria(Criteria $criteria, $field, $values) {
        
        if (!empty($values) && is_numeric($values)) {
            //var_dump($values);
           $values = intval($values);
            $criteria->add(CuentasCorrientesPeer::CTA_CTE_CLIENTE, $values, Criteria::EQUAL);
        }
    }

    public function getFields() {
        return array(
            //'cli_id' => 'Number',
            //'cta_cte_id' => 'Number',
            //'cta_cte_fecha_limite' => 'Date',
            //'cta_cte_monto_max' => 'Number',
            //'cta_cte_saldo' => 'Number',
            'cta_cte_cli_id' => 'Text',
            'cta_cte_cli_telefono' => 'Text',
        );
    }

}
